package com.main.dao;

import java.util.Collections;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.generico.base.BaseDaoImpl;
import com.generico.exception.AsiWebException;
import com.main.java.DocumentoAdjunto;

@Repository
public class DocumentoAdjuntoDaoImpl extends BaseDaoImpl implements DocumentoAdjuntoDao{
	
	@Autowired
	private SessionFactory sessionFactory;

	private Session openSession() {
		return sessionFactory.getCurrentSession();
	}

	public List<DocumentoAdjunto> getRecords(Long id) {
		List<DocumentoAdjunto> lista = Collections.emptyList();
		Criteria criteria = openSession().getSessionFactory().getCurrentSession().createCriteria(DocumentoAdjunto.class);
//		criteria.add(Restrictions.eq("kyc.kycId", id));
		try {
			lista = (List<DocumentoAdjunto>) findByCriteria(criteria);
		} catch (AsiWebException e) {
			logger.error("Error obteniendo registros de documentos digitalizados: " + e.getMessage(), e);
		}
		return lista;
	}
	
	public void delete (Long documentoAdjuntoId) throws AsiWebException{
		delete(findById(DocumentoAdjunto.class, documentoAdjuntoId));
	}
	
	public DocumentoAdjunto findById (Long documentoAdjuntoId) throws AsiWebException{
		DocumentoAdjunto documentoAdjunto = new DocumentoAdjunto();
		documentoAdjunto = (DocumentoAdjunto) findById(DocumentoAdjunto.class, documentoAdjuntoId);
		return documentoAdjunto;
	}
	
}
